Embodiments presented in this disclosure generally relate to providing access to cloud resources, and more particularly, to identifying an optimal location within a cloud for instantiating a new cloud service.
Cloud computing has become a popular approach for obtaining access to (sometimes large-scale) computing resources. Cloud computing allows users to deploy virtualized computing systems which include compute, networking, application, and storage resources, without having to build or maintain a physical computing infrastructure. The virtualized computing system may provide a user with a segmented computing system located in the cloud, typically alongside virtualized computing systems of other users. Such a virtualized computing system may be rapidly scaled up (or down) according to the computing needs of a given user without the need to maintain excess computing capacity between peak demand periods. For example, an online retailer can scale a virtualized computing system to meet increased demand during the holiday shopping season without having to maintain the underlying physical computing infrastructure used to provide the retailer's online presence.
Often times, a cloud computing environment is created using multiple deployment nodes, with each node providing various computing resources to the cloud. Such cloud nodes are frequently located in different geographical locations. Furthermore, the resources that each cloud node provides to the cloud may differ. For example, a first cloud node may provide higher performance computing resources than a second cloud node, or may provide localized storage access to particular storage resources that are not provided at all by the second cloud node. Additionally, the workloads of the cloud nodes may differ as well. For instance, while the computing resources of the first cloud node may be operating at 90% capacity, the computing resources of the second cloud may only be operating at 20% capacity. As the capability and availability of the cloud nodes can vary, it is important to intelligently place new workloads onto suitable cloud nodes in order to ensure efficient utilization of the cloud resources.